home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / c / cp1.zip / EDSTRWIN.C2 < prev    next >
Text File  |  1993-05-18  |  3KB  |  72 lines

  1. ===========================================================================
  2.  BBS: The Abacus * HST/DS * Potterville, MI
  3. Date: 05-15-93 (13:55)             Number: 161
  4. From: GAINES WRIGHT                Refer#: NONE
  5.   To: ZACH HANNA                    Recvd: NO  
  6. Subj: edsrtwin() 2 of 3              Conf: (36) C Language
  7. ---------------------------------------------------------------------------
  8. //continued from last message
  9. while(1)
  10.   {
  11.   str_len=strlen(string);
  12.   _setcursortype(_NOCURSOR);
  13.   gotoxy(xpos-1,ypos);
  14.   if(strpos>winlen-1)
  15.     {
  16.     strncpy(temp,&string[strpos-winlen+1],winlen);
  17.     putch(17);
  18.     }
  19.   else
  20.     {
  21.     strncpy(temp,string,winlen);
  22.     putch(32);
  23.     }
  24.    gotoxy(xpos+winlen,ypos);
  25.    if(str_len>winlen && strpos<str_len-1)
  26.          putch(16);
  27.    else
  28.          putch(32);
  29.    temp[winlen]='\0';
  30.    gotoxy(xpos,ypos);
  31.    cputs(temp);
  32.    if(str_len<=winlen)
  33.         putch(32);
  34.    if(strpos==str_len)
  35.         putch(32);
  36.    if(strpos>winlen-1)
  37.          gotoxy(xpos+winlen-1,ypos);
  38.    else
  39.          gotoxy(strpos+xpos,ypos);
  40.    if(insert)_setcursortype(_NORMALCURSOR);
  41.    else _setcursortype(_SOLIDCURSOR);
  42.    switch(c=getkey())
  43.      {
  44.      case 8:  //backspace key
  45.        {
  46.        if(strpos<=0) break;     //Don't go past beginning of string
  47.        strpos--;                //No break!!  Fall through to delete key
  48.        }                        //Since backspace = left arrow + delete
  49.      case -83: //delete key
  50.        {
  51.        if(strpos>=str_len) break; //Don't delete the '\0'
  52.        //Shift portion of string from cursor left one char
  53.        memmove(&string[strpos],&string[strpos+1],str_len-strpos);
  54.        break;
  55.        }
  56.       case 13: {free(temp); return(0);}                  //return key
  57.       case 27: {free(temp);return(-1);}                  //ESC exits
  58.       case -71: {strpos=0;break;}                        //home key
  59.       case -75: if(strpos>0) strpos--;break;             //left key
  60.       case -77: if(strpos<str_len) strpos++;break;       //right key
  61.       case -79: {strpos=str_len;break;}                  //end key
  62.       case -82: {insert=!insert;break;}                  //insert key
  63. //continued next message
  64. ---
  65.  ■ SLMR 2.1a ■ Back Up My Hard Drive? I Can't Find The Reverse Switch!
  66.  
  67. --- DCI/Chauncy 0.7b
  68.  * Origin: Bird Lake - (813)265-3256 (1:377/14.0)
  69. SEEN-BY: 1/211 11/2 4 13/13 101/1 108/89 109/25 110/69 114/5 123/19 124/1
  70. SEEN-BY: 153/752 154/40 77 157/2 159/100 125 575 950 203/23 209/209 261/1023
  71. SEEN-BY: 280/1 390/1 396/1 5 15 2270/1 2440/5 3603/20
  72.